import type { IMenu } from '../../pages/login/api/interface'
import type { ISearchResult } from '../../pages/menu/api/interface'

/**
 * 菜单相关类型定义
 */

// 清洗后的菜单分类接口
export interface IMenuCategory {
  category: IMenu // 分类信息（没有Url的菜单项，或虚拟的"其他功能"分类）
  children: IMenu[] // 子菜单列表（有Url的菜单项，包括独立菜单项）
}

// 白名单应用配置接口
export interface IWhitelistConfig {
  text: string  // 菜单文本名称
  path: string  // 对应的页面路径
}

// 应用分类数据接口
export interface IAppCategory {
  id: string
  name: string
  icon: string
  apps: ISearchResult[]
}

// 菜单数据返回接口
export interface IMenuData {
  menuCategories: IMenuCategory[]
  flatMenus: IMenu[]
  filteredMenuCategories: IMenuCategory[]
  findMenu: (menuId: string) => IMenu | undefined
}

// 菜单筛选参数接口
export interface IFilterParams {
  searchKeyword?: string
  selectedCategory?: string
  menuCategories?: IMenuCategory[]
}

// 图标映射接口
export interface IIconMap {
  [key: string]: string
}
